#pragma once
#include <string>
#include <regex>
#include <unordered_map>
#include <map>
#include "../../tool/ClassReflectionTool.hpp"


template<typename MESSAGE_TYPE>
class MessageInterface {

protected:

    bool m_empty = true;


public:
    MessageInterface() = default;
    virtual ~MessageInterface() = default;

public:
    /**
     *
     * @param keyValuePairs
     */
    virtual void initializetionByKeyValuePairs(std::unordered_map<std::string, std::string>& keyValuePairs) {}

    virtual MESSAGE_TYPE getType() const{}

    virtual void clear();

};


